pattern matching - shell

Consider the following rules:
register *
delete *
suppose now if I send a message to the application (via mobile using SMS) that will match the rules
register Leon Eric
now we have two parameter Leon and Eric and the application
will assign %P1% for Leon and %P2% for Eric , for further use.
it can be more parameters every parameters have its variable %P1% %P2% %P3% .... %Pn%
the application will reply a custom message that can be changed by the user :
Thank you %P1% %P2% for your register.
since %P1% is Leon and %P2% is Eric
the message will be "Thank you Leon Eric for your register."
my questions :
What is the best technique I should use with this situation is it regular expression?
I tried to use the regular expression to extract the parameters but how to group every
parameter with name %P1% %P2% ….%Pn% for further use.
register.? (.+).?
What is the best technique I should use to replace the message that have an argument with
the parameter that the regular expression assign ?
For example:
Thank you %P1% %P2% for your register.
"Thank you Leon Eric for your register."
thank you very much

You don't need any regex here, just use %* to list all parameters:
Thank you %*% for your register.

Related

Convert the total amount in words

I'm converting my total amount into words using bi publisher. Btw, the amount is base on the data from the data set. Can someone help me what to do? Thanks
<?xdofx:to_check_number,sum(COLUMN_NAME, ‘EUR’, ‘CASE_UPPER’, ‘DECIMAL_STYLE_WORDS’)?>
I expect the output to be in words but the actual ouput is blank.
Use the function xdoxslt:toCheckNumber
Like this:
<?xdoxslt:toCheckNumber($_XDOLOCALE, sum(COLUMN_NAME), ‘EUR’, ‘CASE_UPPER’, ‘DECIMAL_STYLE_WORDS’)?>
For a detailed explanation, check this page. But bear in mind, this is an undocumented function.
In E-Business Suite r12, the XML file from the "out of the box" payments module has amount in text: OutboundPaymentInstruction/OutboundPayment/PaymentAmountText
<?xdofx:to_check_number(sum(COLUMN_NAME), 'EUR', 'CASE_UPPER', 'DECIMAL_STYLE_WORDS')?>
should work with fixed quotes and converted part ,sum(COLUMN_NAME,... into(sum(COLUMN_NAME),....
You can try this one which is working for my case.
<?xdoxslt:toWordsAmt(2300)?>
CASE_INIT_CAP

Is there joomla Jhtml method for input?

So I've tried to use echo JHtml::_('input.text', name, value, attribs, label); for generating input, but I got error message JHtml::text not found.. Is there a way to generate input with text type ?
Short answer: No, there isn't.
But you could write your class or just use JLayouts to do the job until Joomla gets some sort of real GUI toolkit.

How do I define a SemgrexPattern in Stanford API, to match nodes' text without using {lemma:...}?

I am working with the edu.stanford.nlp.semgrex and edu.stanford.nlp.tress.semgraph packages and am looking for a way to match nodes with a text value other than the lemma: directive.
I couldn't find all possible attribute names in javadoc for SemgrexPattern, only those for lemma, tag, and relational operators - is there a comprehensive list available?
For example, in the following sentence
My take-home pay is $20.
extracting the 'take-home' node is not possible using
(SemgrexPattern.compile( "{lemma:take-home}"))
.matcher( "My take-home pay is $20.").find()
yields false, because take-home is deemed not to be a lemma.
What do I need to do to match nodes with non-lemma, arbitrary text?
Thanks for any advice or comment.
Sorry - I realize that {word:take-home} would work in the example above.
Thanks..

JMeter "if controller" with parameters?

I was reading the JMeter documentation and came across this info box about "If Controllers":
No variables are made available to the script when the condition is interpreted as Javascript. If you need access to such variables, then select "Interpret Condition as Variable Expression?" and use a __javaScript() function call. You can then use the objects "vars", "log", "ctx" etc. in the script.
I don't quite follow this. Does this mean if I want access to a "User Defined Parameter" then I can access it only by writing some JavaScript? The example that follows this box then refers to "${COUNT}"
Could someone clarify the usage of the If Controller, maybe with an example or two?
All these answers are wrong! You need to put the variable reference in quotes, like so:
"${my_variable}"=="foo"
You can simply use something like
${my_variable}=='1'
Sometimes JMeter documentation can be confusing :)
Edit 27 september 2017:
The answer here works but has a very bad performance impact when number of threads exceeds 40.
See below for correct and most performing answer:
https://stackoverflow.com/a/46976447/460802
See:
https://bz.apache.org/bugzilla/show_bug.cgi?id=61675
UNCHECK the CHECKBOX
"Interpret condition as variable expression"
I wasted a couple of hours without unchecking this checkbox. It worked with and without semicolon(;) at the end of the statement. Make sure that you have set the User-Defined Variables before calling the if controller.
All the following variations worked for me in Jakarta Jmeter 1.5
${__javaScript("${HOMEPAGE}"=="Y")}
${__javaScript("${HOMEPAGE}"=="Y")};
"${HOMEPAGE}"=="Y"
"${HOMEPAGE}"=="Y";
If Controller will internally use javascript to evaluate the condition but this can have a performance penalty.
A better option (default one starting from JMeter 4, see https://bz.apache.org/bugzilla/show_bug.cgi?id=61675) is to check "Interpret Condition as Variable Expression?", then in the condition field you have 2 options:
Option 1 : Use a variable that contains true or false. For example If you want to test if last sample was successful, you can use
${JMeterThread.last_sample_ok}
or any variable you want that contains true/false
${myVar}
Option 2 : Use a function (${__jexl3()} is advised) to evaluate an expression that must return true or false.
For example if COUNT is equal to 1:
${__jexl3("${COUNT}"== "1",)}
OR
${__jexl3(${COUNT}== 1,)}
Starting with 4.0, if you don't use the "Interpret Condition as Variable Expression?", a warning in RED will be displayed:
If you'd like to learn more about JMeter and performance testing this book can help you.
God bless the http://habrahabr.ru
Have tried until found these.
Using the quotes was my solution.
As Gerrie said you need to check your variable
${my_var} == 'value'
But be careful with the 'User Defined Variables'
Note that all the UDV elements in a
test plan - no matter where they are -
are processed at the start.
That basically means that you cannot define 'User Defined Variables' inside an 'If Controller'. Take a look to the 'BeanShell' instead.
Replace:
${my_variable}=='1'
with
"${my_variable}" == "1"
if it's string value pass as below and its performance effective
${__groovy("${key}"=="value")}
I have used ${code_g1}== 200 in condition and it worked for me.

What does 'Language neutral' mean with regard to MAKELANGID?

The docs for MAKELANGID specify that MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL) Means 'Language neutral'.
This seems to be English on my machine (tried it with FormatMessage), but what does it mean in general? Is it guarenteed to be English?
Thanks!
I would expect that this means that the strings associated with the lang id are not specific to any language - which could be useful to know for a localisation team. "%1 + %2 = %3" would be an example of one such string.
with sublanguage = SUBLANG_DEFAULT this would be the user's default language.
https://web.archive.org/web/20100704043524/http://msdn.microsoft.com/en-us/library/ms534732(VS.85).aspx
Here's a note on the sublanguage identifier - https://web.archive.org/web/20100728153356/http://wiki.winehq.org/SublangNeutral.
Note that MAKELANGID creates a language identifier for you from the primary language and sublanguage identifier - it does "not" get the default language, or anything like that.
No, it is not "gauranteed to be English." It "is" whatever you place into it at that point (English, in your case). But it means that it should not serve as a (language) satellite assembly (except maybe as a fallback).

Resources