[英]Regex that match strings in between underscores, asterisks & tilde
我結賬的是這個_(.*?)_
我應該使用什么正則表達式來獲取下划線之間的字符串的每個實例,但不應該是字符串的子字符串(檢查test3),也不應該將它們放在換行符中(檢查test4)
var string = "_test1 test2_ test_3_ _\n test4_ _test5_"
正則表達式應該只獲得_test1 test2_
和_test5_
注意:單詞test的任何字符/字符串都沒有關系
如果可以保證每個下划線對之間都由一個空格字符分隔(因此,兩個下划線不會相鄰),那么此正則表達式將起作用: \\b_([\\w\\s]+?)_\\b
要匹配您需要的3種情況,請使用以下正則表達式: (?:\\b|\\s|^)[_*~]([\\w\\s]+?)[_*~](?:\\s|$)
您可以使用此正則表達式
(?:^| )(_(?:[\w ]+?)_|([*~])(?:[\w ]+?)\2)(?= |$)
JS演示
var re = /(?:^| )(_(?:[\\w ]+?)_|([*~])(?:[\\w ]+?)\\2)(?= |$)/g; var str = "_test1 test2_ test_3_ _\\n test4_ *test5* test*3* _asdf_ _ghjkl_ _mno_"; document.writeln("<pre>" + str.match(re) + "</br>" + "</pre>");
為了從中獲得所需的值
test1 test2 test_3_ \\ n test4 test5
采用
_test[^_\n]+_
下面的一個也可以。
^_([^_]+?)_|_([^_]+?)_$
text.match(/^_([^_]+?)_|_([^_]+?)_$/g);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.