【发布时间】:2015-02-10 15:31:52
【问题描述】:
我正在读取文本文件中的行并检查它是否与我创建的正则表达式匹配。
但它总是说你的正则表达式不匹配,但正则表达式工具显示它与我的常规解释匹配。
while read line
do
name=$line
BRANCH_REGEX="\d{10}\-[^_]*\_\d{13}"
if [[ $name =~ $BRANCH_REGEX ]];
then
echo "BRANCH '$name' matches BRANCH_REGEX '$BRANCH_REGEX'"
else
echo "BRANCH '$name' DOES NOT MATCH BRANCH_REGEX '$BRANCH_REGEX'"
fi
done < names.txt
names.txt 包括行例如:
9000999484-suchocka_1416578464908
9000989944-schubertk_1416582641605
9001026342-extbeerfelde_1416586904787
9000687045-sturmjo_1416573131629
9001059401-extburghartswieser_1416405627982
9000806302-PDPUPDATE_1357830207068
9000658783-PDPUPDATE_1360445087963
【问题讨论】:
-
您的正则表达式以
/开头,但没有一行包含/。 . . -
我删除了第一个 '/' 但又不匹配了...
-
酷。所以,现在你只需要弄清楚你的正则表达式的其他问题。 (“我的代码不起作用”不是一个好的 StackOverflow 问题。您当然可以玩弄一下,找出问题所在?)
-
问题在于 bash 配置,我认为这不是“我的代码不起作用”之类的问题。
-
我的意思是,你发布了一个比较大的代码块。您无法更精确地缩小问题范围是不可思议的;相反,一定是您选择不这样做,认为您可以将调试外包给 StackOverflow。