This question already has answers here:
Why does “Year 2010” =~ /([0-4]*)/ results in empty string in $1?
(7 个回答)
4年前关闭。
我有这样的代码
但它打印为空。
然后我将
将
我找到这样的文件:
x* 零个或多个 x,更喜欢 x+ 一个或多个 x,更喜欢更多 x?零或一个 x,更喜欢一个
所以我希望我的打印品是:
有人能告诉我发生了什么事吗?
您可以使用与空字符串不匹配的
(7 个回答)
4年前关闭。
我有这样的代码
re, err = regexp.Compile(`\p{Han}*`)
if err != nil {
fmt.Println(err)
return
}
s := "foo中文哦woqu"
fmt.Println(re.FindString(s))
但它打印为空。
然后我将
\p{Han}*
更改为 \p{Han}+
,它显示的是中文哦。将
\p{Han}*
更改为 \p{Han}?
,它打印为空。我找到这样的文件:
所以我希望我的打印品是:
\p{Han}*
print 中文哦 \p{Han}+
print 中文哦 \p{Han}?
打印中 有人能告诉我发生了什么事吗?
最佳答案
正如 docs 所说(强调):
\p{Han}*
匹配空字符串。您还可以通过使用 FindAllString
看到:
fmt.Printf("%q", re.FindAllString(s, -1))
// Prints ["" "" "" "中文哦" "" "" "" ""]
您可以使用与空字符串不匹配的
\p{Han}+
。关于go - 正则表达式查找中文unicode字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40992042/
10-13 08:45