如何比较Perl中的两个字符串?
我正在学习Perl,我有这个基本问题在StackOverflow上查找了它并且没有找到好答案所以我想我会问.
我需要检查一下
"Apple" == "Apple" # returns TRUE
"Apple" == "APPLE" # returns FALSE
Run Code Online (Sandbox Code Playgroud)
在Ruby中.
我需要一个字符串比较,但检查不区分大小写.
我试图比较bash中的字符串.我已经找到了关于如何在stackoverflow上执行此操作的答案.在我尝试的脚本中,我使用的是Adam在提到的问题中提交的代码:
#!/bin/bash
string='My string';
if [[ "$string" == *My* ]]
then
echo "It's there!";
fi
needle='y s'
if [[ "$string" == *"$needle"* ]]; then
echo "haystack '$string' contains needle '$needle'"
fi
Run Code Online (Sandbox Code Playgroud)
我也尝试过你可以在第二篇文章中找到的ubuntuforums方法
if [[ $var =~ regexp ]]; then
#do something
fi
Run Code Online (Sandbox Code Playgroud)
在这两种情况下我都收到错误:
[[: not found
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我陷入了一个令人惊讶的问题.
我在我的应用程序中加载了一个文本文件,并且我有一些逻辑比较了μ的值.
我意识到,即使文本相同,比较值也是错误的.
Console.WriteLine("?".Equals("µ")); // returns false
Console.WriteLine("µ".Equals("µ")); // return true
Run Code Online (Sandbox Code Playgroud)
在后面的行中,字符μ被复制粘贴.
任何想法都会有所帮助.
我想比较几个字符串,找到最相似的字符串.我想知道是否有任何库,方法或最佳实践将返回我哪些字符串更类似于其他字符串.例如:
这种比较将返回第一个比第二个更相似.
我想我需要一些方法,例如:
double similarityIndex(String s1, String s2)
Run Code Online (Sandbox Code Playgroud)
某处有这样的事吗?
编辑:我为什么这样做?我正在编写一个脚本,将MS Project文件的输出与处理任务的某些遗留系统的输出进行比较.由于遗留系统的字段宽度非常有限,因此在添加值时,将缩写描述.我想要一些半自动的方式来查找MS Project中哪些条目与系统上的条目类似,这样我就可以获得生成的密钥.它有缺点,因为它必须仍然手动检查,但它会节省大量的工作
我想写一个cmp样功能,比较两个版本号,并返回-1,0或1根据自己的比较valuses.
-1如果版本A早于版本B,则返回0如果版本A和B是等价的1如果版本A比版本B更新,则返回每个子部分应该被解释为一个数字,因此1.10> 1.1.
期望的功能输出是
mycmp('1.0', '1') == 0
mycmp('1.0.0', '1') == 0
mycmp('1', '1.0.0.1') == -1
mycmp('12.10', '11.0.0.0.0') == 1
...
Run Code Online (Sandbox Code Playgroud)
这是我的实施,开放改进:
def mycmp(version1, version2):
parts1 = [int(x) for x in version1.split('.')]
parts2 = [int(x) for x in version2.split('.')]
# fill up the shorter version with zeros ...
lendiff = len(parts1) - len(parts2)
if lendiff > 0:
parts2.extend([0] * lendiff)
elif lendiff < 0:
parts1.extend([0] …Run Code Online (Sandbox Code Playgroud) 我陷入了一个令人惊讶的问题.
我在我的应用程序中加载了一个文本文件,并且我有一些逻辑比较了μ的值.
我意识到,即使文本相同,比较值也是错误的.
Console.WriteLine("?".Equals("µ")); // returns false
Console.WriteLine("µ".Equals("µ")); // return true
Run Code Online (Sandbox Code Playgroud)
在后面的行中,字符μ被复制粘贴.
但是,这些可能不是唯一像这样的字符.
在C#中是否有任何方法来比较看起来相同但实际上不同的字符?
我无法在php.net上找到这个.==用于比较PHP中的字符串时,双等号()是否区分大小写?
以下比较均评估为真:
1)
@"foo" == @"foo";
Run Code Online (Sandbox Code Playgroud)
2)
NSString *myString1 = @"foo";
NSString *myString2 = @"foo";
myString1 == myString2;
Run Code Online (Sandbox Code Playgroud)
但是,肯定有时候NSString使用等于运算符无法比较两个s,[myString1 isEqualToString:myString2]而是需要它.有人可以对此有所了解吗?
我有两个字符串
string1="abc def ghi"
Run Code Online (Sandbox Code Playgroud)
和
string2="def ghi abc"
Run Code Online (Sandbox Code Playgroud)
如何在不破坏单词的情况下获得这两个字符串相同?