BSD与GNU expr的expr差异

时间:2016-08-10 22:00:40

标签: bash macos gnu bsd expr

有没有人知道为什么

expr "4" : '-\?[0-9]\+$' 

在Mac OS X上返回0,在Linux上返回1?

事实:Mac使用BSD expr Linux使用GNU

抱歉,我最初打字

expr "4" : '-\?[0-9]+$'

1 个答案:

答案 0 :(得分:2)

public class PreferenceHelper { private final String PREF_NAME = "Testing_xyz"; private SharedPreferences app_prefs; //For Testing public static final String NEW_TESTING_PIC_ID = "testing"; private Context context; public PreferenceHelper(Context context) { app_prefs = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); this.context = context; } public void new_putMultipleProfileData(String got_multiple_json_data){ AppLog.Log("new_data_80503","got_multiple_json_data "+got_multiple_json_data); Editor editor=app_prefs.edit(); editor.putString(NEW_TESTING_PIC_ID, "hello"); editor.commit(); } public String new_getMultipleProfileData(){ AppLog.Log("new_data_80503","new_getMultipleProfileData "+app_prefs.getString(NEW_TESTING_PIC_ID,"0")); return app_prefs.getString(NEW_TESTING_PIC_ID,"0"); } 采用基本的正则表达式,而不是扩展的正则表达式。 (有关每个的定义,请参阅http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html。)

基本正则表达式不支持expr?运算符;你需要改用边界。

  • +使用?(0到1次出现)
  • 实施
  • \{0,1\}使用+(1次或更多次出现)
  • 实施

GNU \{1,\}似乎允许它们作为扩展名进行转义。

以下是一个可以在任何符合POSIX标准的expr实现中使用的便携式调用:

expr