如何仅使用正则表达式代码提取第三个逗号之前的状态文本?
54 West 21st Street Suite 603, New York,
纽约,United States, 10010
我已经设法提取了我想要的其余部分,但这是一个问题。
另外,请问如何提取“美国”?
如何仅使用正则表达式代码提取第三个逗号之前的状态文本?
54 West 21st Street Suite 603, New York,
纽约,United States, 10010
我已经设法提取了我想要的其余部分,但这是一个问题。
另外,请问如何提取“美国”?
您可以使用此正则表达式:
(?:[^,]*,){2}([^,]*)
并将捕获的组#1 用于您想要的字符串。
很大程度上取决于您的正则表达式引擎,以及您是否真的需要正则表达式或字段拆分。您可以在 Ruby 和 Awk(以及其他)中进行字段拆分,但 sed 和 grep 仅执行正则表达式。请参阅下面的一些示例以帮助您入门。
str = '54 West 21st Street Suite 603, New York,New York,United States, 10010'
str.match /(?:.*?,){2}([^,]+)/
$1
#=> "New York"
$ echo '54 West 21st Street Suite 603, New York,New York,United States, 10010' |
sed -rn 's/([^,]+,){2}([^,]+).*/\2/p'
$ echo '54 West 21st Street Suite 603, New York,New York,United States, 10010' |
awk -F, '{print $3}'