【发布时间】:2011-04-14 18:33:02
【问题描述】:
我有一个写字板文件,我从中提取两个字符串并进行比较。在这种情况下,它们都是相等的,但我不能使用 =~ 表达式来评估它们。
if($pin_list =~ /$lvl_list/){ do something}
我在调试模式下的尝试:
-
eq评估的两个字符串相等 -
==评估的两个字符串相等 - 手动将另一个变量设置为相同的字符串,然后使用新变量执行
if语句;if($pin_list =~ /$x/){do something}。这次尝试成功了。 - 多次对两个字符串变量执行
chomp(var),然后运行代码。失败 - 在两个变量上通过
$tst_pins =~ s/\n//g删除了回车。失败 - 两个变量的长度相同。
- 手动打印的两个 vars 和视觉验证的两个字符串是相同的。
有人有什么想法吗?我怀疑这与写字板有关,也可能与隐藏字符有关,但不知道如何追踪它。
tchrist -> 好问题。在这种情况下,字符串是相等的,但情况并非总是如此。在正常情况下,我只是在寻找一个字符串作为另一个字符串的子集。
对于那些可能感兴趣的人。问题解决了。
我有一个用“+”“加入”的字符串。所以字符串如下所示:
“1+2+3+4+a+b+等”
“+”最终成为问题。在一位同事的建议下,我执行了一个 substr 并将其中一个字符串削减到违规点。它发生在它捕获'+'之后。然后我使用空格而不是“+”加入,一切正常。
使用字母表以外的不同字符会产生影响,我仍然无法解释为什么当其他所有内容都表示相同时。
布雷特
【问题讨论】:
-
如果是
eq,你为什么不用那个??? -
您能否为您的解决方案创建一个答案,而不是将其添加到您的问题中?这样,其他人可以更容易地看到解决方案。如果您愿意,您甚至可以接受自己的答案并收集一些代表点! :)
标签: regex perl strawberry-perl wordpad