使用regexp查找两个单引号之间的非ascii子字符串
我想知道两个单引号之间是否有子字符串,它们具有非ascii字符 测试用例:使用regexp查找两个单引号之间的非ascii子字符串,regex,string,Regex,String,我想知道两个单引号之间是否有子字符串,它们具有非ascii字符 测试用例: "abc 'ab中文09中文' 99 '9999' 'abcd' '中文' " 预期结果: 'ab中文09中文' '中文' 我尝试了这个regexp: /'[^a-zA-Z0-9\s]+?'/ 可以获取子字符串'中文'仅适用于所有非ascii代码。但是我也想要'ab中文09中文'具有非ascii字符 我尝试将子字符串与所有ascii字符匹配,并反转条件: /'^([a-zA-Z0-9\s]+)?'/ 但是什么也得
"abc 'ab中文09中文' 99 '9999' 'abcd' '中文' "
预期结果:
'ab中文09中文'
'中文'
我尝试了这个regexp:
/'[^a-zA-Z0-9\s]+?'/
可以获取子字符串'中文'代码>仅适用于所有非ascii代码。但是我也想要'ab中文09中文'代码>具有非ascii字符
我尝试将子字符串与所有ascii字符匹配,并反转条件:
/'^([a-zA-Z0-9\s]+)?'/
但是什么也得不到
任何帮助都将不胜感激,提前感谢 您可以使用以下正则表达式(用[^']*
包围以匹配其他ascii/非ascii字符,并稍微修改内部字符类以不包括'
):
Javascript示例:
"abc 'ab中文09中文' 99 '9999' 'abcd' '中文' ".match(/'[^']*[^a-zA-Z0-9\s'][^']*'/g)
# => ["'ab中文09中文'", "'中文'"]
更新
使用以下正则表达式匹配任何非ascii字符:
[^\x00-\x7F]
或
[^\000-\177]
您可以使用以下正则表达式(包围[^']*
以匹配其他ascii/非ascii字符,并稍微修改内部字符类以不包括'
):
Javascript示例:
"abc 'ab中文09中文' 99 '9999' 'abcd' '中文' ".match(/'[^']*[^a-zA-Z0-9\s'][^']*'/g)
# => ["'ab中文09中文'", "'中文'"]
更新
使用以下正则表达式匹配任何非ascii字符:
[^\x00-\x7F]
或
[^\000-\177]
是否要匹配'ab中文09中文'代码>?不在子字符串中包含双引号。我将更新我的问题以澄清问题。是否要匹配'ab中文09中文'代码>?不在子字符串中包含双引号。我将更新我的问题以澄清问题。谢谢,这种方法非常有效,但在本例中,“abc”ab中文09中文' 99'9999''abcd'/*'中文' " , 它将返回
'ab中文09中文'` 和最后一个“/*”
中文'代码>将被推荐。@JaugarChang,/'[^']*[^\00-\x7f'][^']*'/g
会给你想要的。我想op不想匹配'>@AvinashRaj,我不明白>在哪里谢谢大家,这些答案真的很有帮助。谢谢,这种方法很有效,但在这种情况下“abc”ab中文09中文' 99'9999''abcd'/*'中文' ,它将返回
'ab中文09中文'` 和最后一个“/*”
中文'代码>将被推荐。@JaugarChang,/'[^']*[^\00-\x7f'][^']*'/g
会给你们想要的。我想op不想匹配'>@AvinashRaj,我不明白>在哪里谢谢你们,这些答案真的很有帮助。