在阿拉伯数字之间取阿拉伯文本

时间:2017-11-21 05:39:00

标签: c# regex unicode

我是正常表达中的菜鸟,需要帮助。这里是源文本的一部分(以字符串形式给出):

  

1 - عنعمربنالخطابرضياللهعنهقال:سمعت   发布消息:إنما   الأعمالبالنيات,وإنمالكلامرئمانوى,   فمنكانتهجرتهإلىدنيايصيبهاأوإلى   امرأةينكحها,فهجرتهإلىماهاجرإليه»。   (البخاري:1)2 - عنعائشةرضياللهعنها:أنالحارث   更多信息   عليهوسلمفقال:يارسولالله,كيفيأتيك   الوحي? فقالرسولاللهصلىاللهعليهوسلم:   «أحيانايأتينيمثلصلصلةالجرس - وهوأشده   علي - 更多信息,更多   وأحيانايتمثلليالملكرجلافيكلمنيفأعي   مايقول»。 قالتعائشةرضياللهعنها:ولقد   رأيتهينزلعليهالوحيفياليومالشديد   البرد,فيفصمعنهوإنجبينهليتفصدعرقا。   (البخاري:2)

我应该写什么模式才能在数字之间只包含文字(包括起始编号)?预期结果:

  

1 - عنعمربنالخطابرضياللهعنهقال:سمعت   发布消息:إنما   الأعمالبالنيات,وإنمالكلامرئمانوى,   فمنكانتهجرتهإلىدنيايصيبهاأوإلى   امرأةينكحها,فهجرتهإلىماهاجرإليه»。   (البخاري:1)

  

2 - عنعائشةرضياللهعنها:أنالحارثبنهشام   رضياللهعنهسألرسولاللهصلىاللهعليه   وسلمفقال:يارسولالله,كيفيأتيكالوحي?   发布消息:أحيانا   更多信息 - وهوأشدهعلي -   更多信息,وأحيانا   يتمثلليالملكرجلافيكلمنيفأعيمايقول»。   قالتعائشةرضياللهعنها:ولقدرأيتهينزل   عليهالوحيفياليومالشديدالبرد,فيفصم   عنهوإنجبينهليتفصدعرقا。 (البخاري:2)

可能有Split等替代品吗?

1 个答案:

答案 0 :(得分:2)

我已经初步了解了这个问题。绝对是一个具有挑战性的,这是一个基于javascript的正则表达式,用于获取阿拉伯数字之间的单词。

/[(\[\u0660-\u0669](.*?)[\u0660-\u0669]/g

这里可能会有一些错误,但我想这会让你更接近答案。我添加了另一个带

的测试用例
  

1هذههياللغةالعربية1

并使用您提供的段落进行测试。

这是一个完整的例子:

const regex = /[(\[\u0660-\u0669](.*?)[\u0660-\u0669]/g;
const str = `١ - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: ١) 

٢ - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: ٢)

١هذه هي اللغة العربية١  

١ - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: ١) ٢ - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: ٢)`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }

    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}

小组比赛的结果如下:

Found match, group 0: ١ - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: ١
Found match, group 1:  - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: 
Found match, group 0: ٢ - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: ٢
Found match, group 1:  - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: 
Found match, group 0: ١هذه هي اللغة العربية١
Found match, group 1: هذه هي اللغة العربية
Found match, group 0: ١ - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: ١
Found match, group 1:  - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: 
Found match, group 0: ٢ - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: ٢
Found match, group 1:  - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: 

您可能对正则表达式匹配的group 1的结果感兴趣

Found match, group 1:  - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: 

Found match, group 1:  - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: 

Found match, group 1: هذه هي اللغة العربية

Found match, group 1:  - عَنْ عُمَرَ بْنِ الْخَطَّابِ رَضِيَ اللهُ عَنْهُ قَالَ: سَمِعْتُ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم يَقُولُ: «إِنَّمَا الْأَعْمَالُ بِالنِّيَّاتِ، وَإِنَّمَا لِكُلِّ امْرِئٍ مَا نَوَى، فَمَنْ كَانَتْ هِجْرَتُهُ إِلَى دُنْيَا يُصِيبُهَا أَوْ إِلَى امْرَأَةٍ يَنْكِحُهَا، فَهِجْرَتُهُ إِلَى مَا هَاجَرَ إِلَيْهِ». (البخاري: 

Found match, group 1:  - عَنْ عَائشَةَ رَضِيَ اللهُ عَنْهَا: أَنَّ الْحَارِثَ بْنَ هِشَامٍ رَضِيَ اللهُ عَنْهُ سَأَلَ رَسُولَ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم فَقَالَ: يَا رَسُولَ اللهِ، كَيْفَ يَأْتِيكَ الْوَحْيُ؟ فَقَالَ رَسُولُ اللهِ صَلَّى اللهُ عَلَيْهِ وَسَلَّم: «أَحْيَانًا يَأْتِينِي مِثلَ صَلْصَلَة الْجَرَسِ - وَهُوَ أَشَدُّهُ عَلَيَّ - فَيَفْصِمُ عَنِّي وَقَدْ وَعَيْتُ عَنْهُ مَا قَالَ، وَأَحْيَانًا يَتَمثَّلُ لِيَ الْمَلَكُ رَجُلًا فَيُكَلِّمُنِي فَأَعِي مَا يَقُولُ». قَالَتْ عَائشَةُ رَضِيَ اللهُ عَنْها: وَلَقَدْ رَأَيْتُهُ يَنْزِلُ عَلَيْهِ الْوَحْيُ فِي الْيَوْمِ الشَّدِيدِ الْبَرْدِ، فَيَفْصِمُ عَنْهُ وَإِنَّ جَبِينَهُ لَيَتَفَصَّدُ عَرَقًا. (البخاري: 

自从我上次学习阿拉伯语已经超过5年了,这是我能够接近的最接近的时间。我希望它能回答你的问题。这是正则表达式匹配的Regex 101链接。

编辑:顺便说一句,我认为Regex101突出显示匹配内容的方式存在一个错误。我已经提交了issue here on Github

相关问题