Regex 匹配相同类型引号的正则表达式
需要正则表达式来匹配以下字符串Regex 匹配相同类型引号的正则表达式,regex,bash,regex-lookarounds,Regex,Bash,Regex Lookarounds,需要正则表达式来匹配以下字符串 ["mystring"] -- Match ['mystring'] -- Match ["mystring'] -- No match ['mystring"] -- No match 我正在尝试使用此^\[(\“\\”).*(\“\”)]$,但这与没有兼容引号的字符串相匹配 谢谢。看来你需要 rx='^\[(['"'"'"])[^'"'"'"]*\1]$'; [[ $s =~ $rx ]] && echo "Matched!" || echo
["mystring"] -- Match
['mystring'] -- Match
["mystring'] -- No match
['mystring"] -- No match
我正在尝试使用此^\[(\“\\”).*(\“\”)]$
,但这与没有兼容引号的字符串相匹配
谢谢。看来你需要
rx='^\[(['"'"'"])[^'"'"'"]*\1]$';
[[ $s =~ $rx ]] && echo "Matched!" || echo "No match!";
见
模式是^\[(['”])[^']*\1]$
,它匹配:
-字符串的开头^
-a\[
字符[
-捕获组1:a([”)
或“
”
-零个或多个[^'”*
或'
字符“
-对组1中捕获的值的反向引用\1
-a]
字符]
-字符串结束$
['mystring'][“mystring']
-这是一个有效的场景吗?我正在尝试使用bash,awkNot-valid,Quotes-type-should-match,你能提供一些代码来重现这个问题吗?另外,请尝试rx='^\[(['''''''''']][^'''''''''''''''''''''''']*\1]$';[[$s=~$rx]]&&echo“匹配!”| | echo“不匹配!”代码>(如果字符串中根本没有引号)。或者,如果字符串不能包含]
,请尝试rx='^\[([''''''''''''''“])[^]*\1]$;
/此外,字符串是否可以包含转义的'
和“
?那['my'string']
呢?你能期待['my“string']
?刚刚接受了你的答案并投了赞成票。非常感谢:-)