regular expression content-type - regex

I am using asp.net madam in my application and I want to check switch to basic authentication based on content-type requested. But only way to add discriminator is through regular expression and I am very poor in regular expressions, Can anyone help me write a regular expression which checks whether string is either "application/json" or "application/xml" in regular expression.

There is a simple regular expression to match it:
^application/(json|xml)$
If you don't have clear that the string is at the beginning and end of the line, just:
application/(json|xml)
And if you need to escape the / bar:
application\/(json|xml)
You may even need not to capture the json|xml expression, so you can do:
application\/(?:json|xml)

Related

How to exclude the last character from the below reg expression response

I am having the below text response I created a regular expression but I want to exclude the last character from the response.
INPUT:
href=\"admin_task_detail?rid=d652a3dd-fff0-4174-a065-5158298493af&tid=4947358c-9f5a-4174-8699-7fa12f9ac3c8&v=5ecb5743a92e7\" >T4947-C3C8<\/a>","#data-order":"T4947-C3C8"},
Reg Exp which I tried
tid=(.+?)\"
Results:
Match[1][0]=tid=4947358c-9f5a-4174-8699-7fa12f9ac3c8&v=5ecb5743a92e7\"
Match[1][1]=4947358c-9f5a-4174-8699-7fa12f9ac3c8&v=5ecb5743a92e7\
The slash symbol need to get excluded from the response.
Just escape the backslash in the regex:
tid=(.+?)\\"
Demo & explanation
Are you absolutely sure that you need this:
tid=4947358c-9f5a-4174-8699-7fa12f9ac3c8&v=5ecb5743a92e7
and not this:
tid=4947358c-9f5a-4174-8699-7fa12f9ac3c8
?
Because these tid and v are different parameters of the query string and most probably you need only tid, not v.
In first case the relevant regular expression would be tid=(.+?)\\
In the second case you will need tid=(.+?)&
The tricky point is that backslash is a meta character so it needs to be escaped by the extra backslash.
In the majority of cases (like in your one) it's easier and better to use Boundary Extractor where you don't need to deal with these regular expressions, it's sufficient to provide left and right boundaries in the plain text. Check out The Boundary Extractor vs. the Regular Expression Extractor in JMeter article for more details.

regex parse multiple expressions

I have a requirement to parse part of url with multiple expressions using regex, expressions are like /abc/def (or) /z/a (or) /v/g. I have a regex that satisfies single expression, but not sure how to do for multiple expression.
(?<volga>.+?\/abc\/def.+?)
volga is a named capturing group.
Above regular expression satisfies anything before /abc and anything after /def, the same way url also has /z/a and /v/g. This is kind of either /abc/def/ or /z/a or /v/g can exist in url. How to write a regular expression that checks for all of above expressions.
Examples of url:
/api/com/abc/def/710660716/847170/
/api/com/z/a/
Maybe this:
(?<volga>.+?\/((abc\/def)|(z\/a)|(v\/g)).*)
Matches any string containing
abc/def
or z/a
or v/g
Regex101

Regular Expression Pattern which should not allow ,;:|

I need the regular expression pattern which should not allow to put any of following characters into input in HTML
,;:|
You may get some idea from this.
[^,;:|]+
DEMO::: https://rubular.com/r/dKQzC1HrnMG88X

In JMeter I need to extract a specific Regular Expression

In the following String:
Events('1234', '123456', '', 'QW233Cdse');
I need to extract "QW233Cdse"
Any suggestion?
When we are working with regular expressions then its very important that we should look for the static text in the test string that can help to create a strong regular expression.
As in your case, "Events()" seems to be a static text containing dynamic value in the round parenthesis so in order to generate the regular expression you need to keep 'Events()' text and add the expression in the round parenthesis as mentioned below:
Test String: Events('1234', '123456', '', 'QW233Cdse');
Regular Expression can be:
Events(.'(.)');
Events(.* '(.+?)');
Note: The backslash before round parentheses would avoid interpreting the round braces as unescaped character. For example, a parenthesis "(" begins the definition of a quantifier, but the leading backslash of parenthesis "(" indicates that the regular expression should match the parenthesis.
Regular expression is most important item to learn when you are working with load testing tools and you can refer to below blog post to get more information on regular expression:
https://www.redline13.com/blog/2016/01/jmeter-extract-and-re-use-as-variable/
Let me know if you have any further question
The relevant regular expression would be something like:
Events\(.* '(.+?)'\);
Demo:
References:
JMeter: Regular Expressions
Using Regular Expressions in JMeter
Perl 5 Regex Cheat sheet
Try using this regex:
\w+(?='\))
Regex would be:
, '([^']+?)');
Configuration would be:

Regular expression for extracting a parameter value

Given a HTTP response header contains the following parameter:
Content-Disposition: attachment; filename="myfile.pdf"
What's the regular expression in JMeter to extract the filename myfile.pdf? I've started with filename=".*" but don't know how to proceed.
First of all you need to surround your regular expression with parentheses like:
filename=(.*)
so JMeter would know what exactly you are trying to capture. It will extract "myfile.pdf"
If you don't need the quotation marks - add them to your regular expression like:
filename="(.*)"
Make sure you have:
Field to check: Response Headers
Template: $1$
References:
JMeter: Regular Expressions
Using RegEx (Regular Expression Extractor) With JMeter
Perl 5 Regex Cheat sheet (JMeter uses Perl5-style regular expressions)
Try using this:
Content-Disposition: attachment; filename="([^"]+)"
Explanation:
( capture what follows
[^"]+ any non quote character, one or more times
) stop capture